package oa.hleast.xswl.service.oms;

import com.baomidou.mybatisplus.extension.service.IService;
import oa.hleast.xswl.pojo.domain.OmsOrderRefund;
import oa.hleast.xswl.pojo.form.OmsOrderRefundForm;
import oa.hleast.xswl.pojo.vo.oms.OmsOrderRefundVo;
import oa.hleast.xswl.pojo.vo.oms.ShowOmsOrderRefundVo;

/**
 * @author: 302
 * @date: 2021-10-30 17:42:10
 * @description: 订单退款表(OmsOrderRefund)接口
 */
public interface OmsOrderRefundService extends IService<OmsOrderRefund> {

    /**
     * 申请退款
     */
    Boolean requestRefund(OmsOrderRefundForm form);

    /**
     * 退货详情
     */
    OmsOrderRefundVo getDetail(Long spuId);

    /**
     * 商家同意/拒绝 退款or退款退货
     */
    Boolean storeAgreeRefund(Long refundId, Integer agreeRefund, String remark);

    /**
     * 商家确认收货
     */
    Boolean storeConfirmReceipt(Long refundId);

    /**
     * 买家填写退货信息
     *
     * @param deliveryCompany 物流公司
     * @param deliverySn      物流单号
     */
    Boolean saveDeliveryInfo(Long refundId, String deliveryCompany, String deliverySn);

    /**
     * 退款详情
     */
    ShowOmsOrderRefundVo getRefundDetails(Long orderId, Long orderItemId);

    /**
     * 详情
     */
    OmsOrderRefundVo getDetail(Long orderId, Long orderItemId);

    /**
     * 重新申请退款/退款退货
     */
    Boolean againRequestRefund(OmsOrderRefundForm form);

    /**
     * 取消退款/退款退货申请
     */
    Boolean cancelRefund(Long orderId, Long orderItemId);
}
